package com.jzy.constant;

public class EdcConstants {

    /**********************************************************************************
     * 系统常量
     **********************************************************************************/
    public static class SYSTEM {
        public static final Object OBJECT_NULL = "(空)";
    }

    /**********************************************************************************
     * REDIS常量
     **********************************************************************************/
    public static class REDIS {
        public static final String USER_ACCOUNT_PRIFEX = "big_shell_user_account_";
        public static final String USER_TOKEN_PRIFEX = "big_shell_user_token_";
    }

    /**********************************************************************************
     * SESSION 保存对象KEY定义
     **********************************************************************************/
    public static class SessionKey {
        public static final String USER_LOGIN_INFO = "user_login_info";
        public static final String GLOBAL_SESSION_MAP = "global_session_map";
    }

    /**********************************************************************************
     * 分页常量
     **********************************************************************************/
    public static class PageInfo {
        public static final int PAGE_START = 0;
        public static final int PAGE_SIZE = 20;
        public static final String PAGE_ORDER_DESC = "DESC";
        public static final String PAGE_ORDER_ASC = "ASC";
        public static final String PAGE_ORDER_DEFAULT = "create_time";
    }

    /**********************************************************************************
     * 时间戳常量
     **********************************************************************************/
    public static final class TimeStamp {
        public static final int SECONDS = 3600;// 每分钟秒数
        public static final int MINUTES = 60;// 每小时分钟数
        public static final int HOURS = 24; // 每日小时数
        public static final int WEEKS = 7;// 每周天数
        public static final int MILLISECONDS = 1000;// 每秒毫秒数
    }

    /**********************************************************************************
     * Boolean类型的整数状态
     **********************************************************************************/
    public static final class BooleanStatus {
        public static final int NO = 0;// 否
        public static final int YES = 1;// 是
    }

    /**********************************************************************************
     * 国际化异常码
     **********************************************************************************/
    public static final class GlobalExceptionCode {
        public static final int SUCCESS = 0;// 操作成功
        public static final int SYSTEM_ERROR = 101;// 系统异常
        public static final int MISS_REQUIRED_PARAMETER = 102;// 缺失必要的参数
        public static final int SESSION_INVALID = 103;//登录已失效，请重新登录

        public static final int USER_NAME_EXIST = 201;// 用户名已存在
        public static final int OLD_PASSWORD_IS_WRONG = 202;// 原密码错误
        public static final int USER_NOT_EXIST = 203;// 用户不存在
        public static final int USER_NAME_NOT_SAME_MAIL = 204;// 用户名与邮箱不一致
        public static final int LINK_HAS_EXPIRED = 205;// 链接已失效
        public static final int INVALID_LINK = 206;// 无效链接
        public static final int WRONG_PASSWORD = 207;// 密码错误
        public static final int USER_MAIL_EXIST = 208;// 邮箱已存在
        public static final int USER_NAME_OR_PASSWORD_IS_WRONG = 209;// 用户名或密码错误
        public static final int USER_NAME_OR_PASSWORD_IS_INVALID = 210;// 无效用户名或密码

        public static final int DRAFT_NAME_EXIST = 301;// 草稿名/版本名已存在
        public static final int DRAFT_INFO_NOT_EXIST = 302;// 草稿名信息不存在

        public static  final int DICTIONARY_CODE_EXITS = 401;//数据字典编码已存在
        public static  final int DICTIONARY_ITEM_CODE_EXITS = 402;//数据字典条目编码已存在
        public static  final int DATA_DICTIONARY_IS_ALREADY_USED = 403;//字典已被引用或发布，无法关闭


        public static  final int PROJECT_CODE_EXITS = 501;//项目编码已存在
        public static  final int PROJECT_NAME_EXITS = 502;//项目名称已存在
        public static  final int STUDY_CODE_EXITS = 503;//环境编号已存在
        public static  final int VERSION_CODE_EXITS = 504;//版本编号重复
        public static  final int ADD_DEFAULT_MASTER = 505;//请添加默认Master
        public static  final int FOLDER_FORM_NOT_EXISTS = 506;//表单结构不存在

        public static  final int UNIT_DICTIONARY_CODE_EXITS = 601;//单位字典编码已存在
        public static  final int UNIT_DICTIONARY_ITEM_CODE_EXITS = 602;//单位字典条目编码已存在
        public static  final int UNIT_DICTIONARY_IS_ALREADY_USED = 603;//字典已被引用或发布，无法关闭

        public static  final int MASTER_CODE_EXITS = 701;//表单编码已存在
        public static  final int MASTER_NAME_EXITS = 702;//表单编码已存在
        public static  final int DEFAULT_MASTER_NAME_EXITS = 703;//默认表单已存在

        public static  final int FOLDER_CODE_EXITS = 801;//访视编号已存在

        public static  final int FORM_CODE_EXITS = 901;//模块编号已存在
        public static  final int FORM_IS_PUBLISHED = 902;//模块已经发布过，不能删除
        public static  final int FORM_IS_BIND = 903;//模块已经引用过，不能删除
        public static  final int FORM_NAME_EXITS = 904;//同一个模块在一个访视内名称不可重复
        public static  final int FORM_PUBLISHED_CANNOT_SAVE = 905;//当前模块已发布，不能另存为

        public static  final int FIELD_CODE_EXITS = 1001;//字段编号已存在
        public static  final int ORDINARY_GRID_CODE_EXITS = 1002;//普通表格编号已存在
        public static  final int ORDINARY_GRID_COLUMN_CODE_EXITS = 1003;//普通表格列编号已存在
        public static  final int LABORATORY_GRID_CODE_EXITS = 1004;//实验室表格编号已存在
        public static  final int LABORATORY_GRID_ITEMS_CODE_EXITS = 1005;//实验室表格检查项编号已存在
        public static  final int DRAFT_HAS_PUSHED_VERSION = 1006;//草稿已经发布过版本，不能删除
        public static  final int VERSION_CAN_NOT_EDIT = 1007;//版本不能编辑
        public static  final int LAB_KEY_EXISTS = 1008;//实验室指标已存在

        public static  final int SUBJECT_NO_EXITS = 1101;//病历号已存在
        public static  final int MEDICAL_RECORD_NUMBER_LENGTH_TOO_LONG = 1102;//病历号长度超过项目配置长度
        public static  final int NAME_ABBREVIATION_LENGTH_TOO_LONG = 1103;//姓名缩写长度长度超过项目配置长度

        public static  final int FORM_NO_EXITS = 1201;//表单不存在
        public static  final int FORM_STRUCTURE_ERROR = 1202;//表单结构错误
        public static  final int RECORD_NO_EXITS = 1203;//表单不存在
        public static  final int SUBJECT_IS_EXITS = 1204;//该中心已经存在受试者，不能删除

        public static  final int KEY_CODE_EXITS = 1301;//编号已存在
        public static  final int UNIT_EXITS = 1302;//单位已存在
        public static  final int KEY_CODE_CAN_NOT_UPDATE = 1303;//编号不允许修改

        public static  final int SITE_CODE_EXITS = 2001;//中心编号已存在
        public static  final int SITE_NAME_EXITS = 2002;//中心名称已存在
        public static  final int UPDATE_SITE_STATUS_ERROR = 2003;//修改中心状态失败，该中心已经关联过项目

        public static  final int PUSH_VERSION_FAILED = 3001;//推送版本失败
        public static  final int ROLE_NAME_EXITS= 4001;//权限组名字已存在
        public static  final int REVIEW_GROUP_NAME_EXITS= 5001;//审核组名字已存在
        public static  final int SYSTEM_REASON_NAME_EXITS= 6001;//系统理由名字已存在

        public static  final int VARIABLE_CODE_EXITS= 7001;//变量编号已存在
    }

    /**********************************************************************************
     * 国际化语言环境
     **********************************************************************************/
    public static final class Local {
        public static final String CHINESE = "zh_CN";// 中文环境
        public static final String ENGLISH = "en_US";// 英文环境
    }
    public static final String[] LOCAL_LIST = {"zh_CN","en_US"};

    /**********************************************************************************
     * 全局字符串
     **********************************************************************************/
    public static final class GlobalString {
        public static final String KAY = "global_string_key";
    }

    /**********************************************************************************
     * 全局字符串
     **********************************************************************************/
    public static final class Study {
        public static final String PROD_CODE = "PROD";

        public static final int IS_PROD_CODE = 1;
        public static final int IS_NOT_PROD_CODE = 0;
    }
}
